1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/include/llvm/ADT
Jakob Stoklund Olesen 492f97910d Prevent infinite growth of the DenseMap.
When the hash function uses object pointers all free entries eventually
become tombstones as they are used at least once, regardless of the size.

DenseMap cannot function with zero empty keys, so it double size to get
get ridof the tombstones.

However DenseMap never shrinks automatically unless it is cleared, so
the net result is that certain tables grow infinitely.

The solution is to make a fresh copy of the table without tombstones
instead of doubling size, by simply calling grow with the current size.

Patch by José Fonseca!

llvm-svn: 128564
2011-03-30 18:32:41 +00:00
..
APFloat.h Add APFloat::getExactInverse. 2011-03-30 15:42:27 +00:00
APInt.h Constant folding support for calls to umul.with.overflow(), basically identical to the smul.with.overflow() code. 2011-03-27 14:26:13 +00:00
APSInt.h PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and 2010-12-07 08:25:19 +00:00
ArrayRef.h add some slice helper methods. 2011-03-02 20:55:51 +00:00
BitVector.h BitVector tweaks. 2010-11-26 18:25:20 +00:00
DAGDeltaAlgorithm.h Fix a gcc warning: 2010-06-09 03:00:05 +00:00
DeltaAlgorithm.h Fix comment. 2010-02-17 19:26:45 +00:00
DenseMap.h Prevent infinite growth of the DenseMap. 2011-03-30 18:32:41 +00:00
DenseMapInfo.h Add a specialization for 'long', a hole in the set of fundamental 2010-10-31 22:57:03 +00:00
DenseSet.h Add DenseSet::resize for API parity with DenseMap::resize. 2011-01-27 09:10:42 +00:00
DepthFirstIterator.h Simplify this code. 2011-03-01 22:07:32 +00:00
EquivalenceClasses.h Merge System into Support. 2010-11-29 18:16:10 +00:00
FoldingSet.h Merge System into Support. 2010-11-29 18:16:10 +00:00
GraphTraits.h 1. Allow SCCIterator to work with GraphT types that are constant. 2009-11-17 10:54:25 +00:00
ilist_node.h Fix const ilist_node::get{Prev,Next}Node() to actually compile. Picky, picky. 2010-05-13 18:35:02 +00:00
ilist.h Add missing standard headers. Patch by Joerg Sonnenberger! 2010-12-19 20:43:38 +00:00
ImmutableIntervalMap.h Fix C++0x incompatibility. The signature of std::make_pair<> changes from: 2011-02-22 22:48:47 +00:00
ImmutableList.h Merge System into Support. 2010-11-29 18:16:10 +00:00
ImmutableMap.h Fix C++0x incompatibility. The signature of std::make_pair<> changes from: 2011-02-22 22:48:47 +00:00
ImmutableSet.h Performance optimization on ImmutableMap/ImmutableSet: 2010-11-30 20:26:45 +00:00
IndexedMap.h Remove MachineRegisterInfo::getLastVirtReg(), it was giving wrong results 2011-01-09 21:58:20 +00:00
InMemoryStruct.h ADT/InMemoryStruct: Add an experimental helper class intended for use in 2010-11-27 08:11:02 +00:00
IntEqClasses.h Use IntEqClasses to compute connected components of live intervals. 2010-12-21 00:48:17 +00:00
IntervalMap.h Add more checks to IntervalMapOverlaps::advance() to ensure that advanceTo sees 2010-12-17 22:07:54 +00:00
IntrusiveRefCntPtr.h Relax access control on 'Release' method of RefCountedBase. 2011-03-22 01:15:07 +00:00
NullablePtr.h add a new NullablePtr class which makes it more obvious in API 2010-07-24 18:47:46 +00:00
Optional.h Poison the relational operators ==, !=, <, <=, >=, > on llvm::Optional 2011-02-11 18:13:20 +00:00
OwningPtr.h Remove MaybeOwningPtr. We're going to use reference-counting instead. 2010-04-05 23:53:46 +00:00
PointerIntPair.h Allow getting the address of the value in a PointerUnion or PointerIntPair if one is 2011-02-19 03:55:58 +00:00
PointerUnion.h Try fixing mingw build. 2011-03-07 05:35:01 +00:00
PostOrderIterator.h Optimize po_iterator: don't do redundant lookups. 2011-02-09 19:25:31 +00:00
PriorityQueue.h
SCCIterator.h Fix typo in comment. 2011-02-14 06:14:20 +00:00
ScopedHashTable.h add the ability to walk the scope tree and insert at not-the-current 2011-02-27 22:51:57 +00:00
SetOperations.h
SetVector.h Make SetVector's remove indicate whether it actually removed something. 2010-09-22 23:20:04 +00:00
SmallBitVector.h Add an all() method to BitVector, for testing whether all bits are set. 2010-09-27 15:48:37 +00:00
SmallPtrSet.h Spelling fix: consequtive -> consecutive. 2011-02-15 09:23:02 +00:00
SmallSet.h
SmallString.h Support/Path: Deprecate PathV1::isAbsolute. 2010-12-17 21:21:31 +00:00
SmallVector.h Add missing standard headers. Patch by Joerg Sonnenberger! 2010-12-19 20:43:38 +00:00
SparseBitVector.h Merge System into Support. 2010-11-29 18:16:10 +00:00
Statistic.h Support: Add llvm::AreStatisticsEnabled(). 2011-02-26 23:17:12 +00:00
STLExtras.h Kill a couple of unused variables. 2010-08-30 18:31:44 +00:00
StringExtras.h Merge System into Support. 2010-11-29 18:16:10 +00:00
StringMap.h Enhance ScopedHashTable to allow it to take an allocator argument. 2011-01-03 01:29:37 +00:00
StringRef.h Support/ADT/StringRef: Add find_last_of. 2010-11-30 23:27:35 +00:00
StringSet.h modernize stringset interface 2010-07-23 03:21:53 +00:00
StringSwitch.h Finish full attribute class emission for clang. 2010-08-18 23:23:09 +00:00
Trie.h Remove forgotten ShortNames in Trie and CompilationGraph 2009-11-30 13:14:13 +00:00
Triple.h Add scei vendor 2011-03-15 21:51:56 +00:00
Twine.h Support/ADT/Twine: Add toNullTerminatedStringRef. 2010-12-01 20:37:30 +00:00
UniqueVector.h
ValueMap.h Merge System into Support. 2010-11-29 18:16:10 +00:00
VectorExtras.h