1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/include/llvm/ADT
Andrew Trick 56264ae675 SparseSet: Add support for key-derived indexes and arbitrary key types.
This nicely handles the most common case of virtual register sets, but
also handles anticipated cases where we will map pointers to IDs.

The goal is not to develop a completely generic SparseSet
template. Instead we want to handle the expected uses within llvm
without any template antics in the client code. I'm adding a bit of
template nastiness here, and some assumption about expected usage in
order to make the client code very clean.

The expected common uses cases I'm designing for:
- integer keys that need to be reindexed, and may map to additional
  data
- densely numbered objects where we want pointer keys because no
  number->object map exists.

llvm-svn: 155227
2012-04-20 20:05:28 +00:00
..
APFloat.h Express the number of ULPs in fpaccuracy metadata as a real rather than a 2012-04-10 08:22:43 +00:00
APInt.h Move APInt::operator[] inline. 2012-03-14 00:38:15 +00:00
APSInt.h
ArrayRef.h Introduce a new MutableArrayRef class, which refers to a series of mutable 2012-01-19 06:34:52 +00:00
BitVector.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
DAGDeltaAlgorithm.h Adding missing anchor to DATDeltaAlgorithm. 2011-12-07 06:44:23 +00:00
DeltaAlgorithm.h
DenseMap.h DenseMap: Perform the pod-like object optimization when the value type is POD-like, not the DenseMapInfo for it. 2012-04-06 10:43:44 +00:00
DenseMapInfo.h Fix various issues (or do cleanups) found by enabling certain MSVC warnings. 2012-02-13 06:30:56 +00:00
DenseSet.h
DepthFirstIterator.h
edit_distance.h Add function for computing the edit distance of two arrays. 2012-02-15 22:13:07 +00:00
EquivalenceClasses.h
FoldingSet.h FoldingSet: Push the hash through FoldingSetTraits::Equals, so clients can use it. 2012-04-11 14:06:47 +00:00
GraphTraits.h Change the Dominators recalculate() function to only rely on GraphTraits 2011-12-05 19:17:04 +00:00
Hashing.h Perform partial SROA on the helper hashing structure. I really wish the 2012-04-07 20:01:31 +00:00
ilist_node.h
ilist.h Fixes the MSVC build. 2012-03-14 22:36:10 +00:00
ImmutableIntervalMap.h
ImmutableList.h
ImmutableMap.h
ImmutableSet.h Make sure ImmutableSet never inserts Tombstone/Entry into DenseMap. 2012-03-20 22:56:27 +00:00
IndexedMap.h SparseSet: Add support for key-derived indexes and arbitrary key types. 2012-04-20 20:05:28 +00:00
InMemoryStruct.h
IntEqClasses.h
IntervalMap.h Add a few missing 'template' keywords 2012-03-11 02:22:41 +00:00
IntrusiveRefCntPtr.h RefCountedBaseVPTR needs the IntrusiveRefCntPtrInfo as friend, 2012-01-31 19:58:34 +00:00
NullablePtr.h
Optional.h
OwningPtr.h revert r148688 too, this isn't safe for DenseMap use. When DenseMap resizes, it will need to copy around arbitrary pointers 2012-01-23 15:10:41 +00:00
PackedVector.h
PointerIntPair.h PointerUnion::getAddrOf() does not need to be template since we can only 2012-03-06 07:14:54 +00:00
PointerUnion.h Add a few missing 'template' keywords 2012-03-11 02:22:41 +00:00
PostOrderIterator.h
PriorityQueue.h
SCCIterator.h
ScopedHashTable.h
SetOperations.h
SetVector.h add a method to improve compatibility with SmallVector. 2011-12-20 00:03:41 +00:00
SmallBitVector.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
SmallPtrSet.h SmallPtrSet: Reuse DenseMapInfo's pointer hash function instead of inventing a bad one ourselves. 2012-04-18 10:37:32 +00:00
SmallSet.h allow clients of SmallSet to specify their own comparison function for the set. 2012-01-05 17:35:07 +00:00
SmallString.h Additional methods for SmallString. 2012-01-24 23:43:59 +00:00
SmallVector.h Remove an old hack for pre-2005 MSVC. We don't support ancient microsoft compilers anymore. 2012-03-13 20:07:36 +00:00
SparseBitVector.h What's better than fixing and simplifying broken hash functions? 2012-03-07 09:54:06 +00:00
SparseSet.h SparseSet: Add support for key-derived indexes and arbitrary key types. 2012-04-20 20:05:28 +00:00
Statistic.h Silence tsan false-positives (tsan can't track things which are only safe due to 2011-12-05 23:07:05 +00:00
STLExtras.h SparseSet: Add support for key-derived indexes and arbitrary key types. 2012-04-20 20:05:28 +00:00
StringExtras.h Move ftostr into its last user (cppbackend) and simplify it a bit. 2012-03-23 11:26:29 +00:00
StringMap.h Make StringMap's copy ctor non-explicit. 2012-04-14 09:04:57 +00:00
StringRef.h Make StringRef::getAsInteger work with all integer types. Before this change 2012-03-10 23:02:54 +00:00
StringSet.h
StringSwitch.h
TinyPtrVector.h Missing change in r152106 for TinyPtrVector. 2012-03-07 03:37:32 +00:00
Trie.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
Triple.h Add triple support for the IBM BG/P and BG/Q supercomputers. 2012-04-02 18:31:33 +00:00
Twine.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
UniqueVector.h
ValueMap.h DenseMap: Perform the pod-like object optimization when the value type is POD-like, not the DenseMapInfo for it. 2012-04-06 10:43:44 +00:00
VariadicFunction.h As Doug pointed out (and I really should know), it is perfectly easy to 2011-12-17 10:20:15 +00:00