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 | 55512f9b251df3023f0cbf858f28835992f18165 (patch) | |
| tree | cdcec29f83c4076239f450e68ba736557bef2b58 /llvm/utils | |
| parent | 2d16145acfb67c7498cf43a7a3fd04b543a2a767 (diff) | |
| download | bcm5719-llvm-55512f9b251df3023f0cbf858f28835992f18165.tar.gz bcm5719-llvm-55512f9b251df3023f0cbf858f28835992f18165.zip | |
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.
llvm-svn: 253439
Diffstat (limited to 'llvm/utils')
| -rw-r--r-- | llvm/utils/TableGen/AsmMatcherEmitter.cpp | 6 | ||||
| -rw-r--r-- | llvm/utils/TableGen/FixedLenDecoderEmitter.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp index f1b9ab39387..e55bbd37610 100644 --- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp +++ b/llvm/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/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp b/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp index df61511c8dd..8ca4a1bf540 100644 --- a/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp +++ b/llvm/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; |

