llvm-project/llvm/unittests/ADT
Rafael Espindola e9f0784acc Add a CachedHash structure.
A DenseMap doesn't store the hashes, so it needs to recompute them when
the table is resized.

In some applications the hashing cost is noticeable. That is the case
for example in lld for symbol names (StringRef).

This patch adds a templated structure that can wraps any value that can
go in a DenseMap and caches the hash.

llvm-svn: 266981
2016-04-21 12:16:21 +00:00
..
APFloatTest.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
APIntTest.cpp Remove some unneeded headers and replace some headers with forward class declarations (NFC) 2016-04-16 07:51:28 +00:00
APSIntTest.cpp ADTTests: merge #ifdef checks from r240436. 2015-06-24 17:05:04 +00:00
ArrayRefTest.cpp Add makeArrayRef() overload for ArrayRef input (no-op/identity) NFC 2015-09-10 00:05:04 +00:00
BitVectorTest.cpp Simplify SmallBitVector::applyMask by consolidating common code for 32- and 64-bit builds 2015-09-18 15:08:24 +00:00
CMakeLists.txt [SetVector] Add erase() method 2016-03-25 19:28:08 +00:00
DAGDeltaAlgorithmTest.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
DeltaAlgorithmTest.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
DenseMapTest.cpp Add a CachedHash structure. 2016-04-21 12:16:21 +00:00
DenseSetTest.cpp
FoldingSet.cpp Adding full stops to comments 2015-09-04 15:28:13 +00:00
FunctionRefTest.cpp
HashingTest.cpp Remove no-op dtor so that use of the implicit copy ctor/assignment operator are not deprecated. 2015-03-03 19:52:59 +00:00
ImmutableMapTest.cpp
ImmutableSetTest.cpp
IntEqClassesTest.cpp
IntervalMapTest.cpp
IntrusiveRefCntPtrTest.cpp
MakeUniqueTest.cpp
MapVectorTest.cpp [ADT] Teach MapVector to support a swap member. Will be used in 2015-03-25 00:50:21 +00:00
OptionalTest.cpp Allow Optionals to be compared to None 2015-08-19 23:07:27 +00:00
PackedVectorTest.cpp Simplify PackedVector by removing user-defined special members that aren't any different than the defaults 2015-08-12 23:26:12 +00:00
PointerEmbeddedIntTest.cpp [ADT] Fix PointerEmbeddedInt when the underlying type is uintptr_t. 2016-02-18 21:00:08 +00:00
PointerIntPairTest.cpp Fix PointerIntPair so that it can use an enum class as its integer template argument. 2016-01-13 05:59:13 +00:00
PointerSumTypeTest.cpp [ADT] Add a sum type abstraction for pointer-like types. 2016-01-10 08:48:23 +00:00
PointerUnionTest.cpp
PostOrderIteratorTest.cpp Compilation test for PostOrderIterator. 2014-11-20 19:33:33 +00:00
RangeAdapterTest.cpp Reapply "Add reverse(ContainerTy) range adapter." 2015-07-29 22:19:09 +00:00
SCCIteratorTest.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
SetVectorTest.cpp [SetVector] Add erase() method 2016-03-25 19:28:08 +00:00
SmallPtrSetTest.cpp SmallPtrSetTest: More checks for the swap() testing 2016-01-29 03:34:36 +00:00
SmallStringTest.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
SmallVectorTest.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
SparseBitVectorTest.cpp Miscellaneous Fixes for SparseBitVector 2015-07-20 18:26:23 +00:00
SparseMultiSetTest.cpp
SparseSetTest.cpp [ADT] Add a pop_back_val method to the SparseSet container. 2016-03-14 18:10:41 +00:00
StringMapTest.cpp Remove some unneeded headers and replace some headers with forward class declarations (NFC) 2016-04-16 07:51:28 +00:00
StringRefTest.cpp StringRef::copy shouldn't allocate anything for length 0 strings. 2016-03-23 21:49:31 +00:00
TinyPtrVectorTest.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
TripleTest.cpp Add AMDGPU related triple vendors/OSes 2016-02-13 01:56:21 +00:00
TwineTest.cpp Teach Twine to support SmallString. 2015-03-17 09:51:17 +00:00
VariadicFunctionTest.cpp
ilistTest.cpp ADT: Avoid relying on UB in ilist_node::getNextNode() 2015-11-11 02:26:42 +00:00