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
Chandler Carruth 25594f9e13 Add support to the hashing infrastructure for automatically hashing both
integral and enumeration types. This is accomplished with a bit of
template type trait magic. Thanks to Richard Smith for the core idea
here to detect viable types by detecting the set of types which can be
default constructed in a template parameter.

This is used (in conjunction with a system for detecting nullptr_t
should it exist) to provide an is_integral_or_enum type trait that
doesn't need a whitelist or direct compiler support.

With this, the hashing is extended to the more general facility. This
will be used in a subsequent commit to hashing more things, but I wanted
to make sure the type trait magic went through the build bots separately
in case other compilers don't like this formulation.

llvm-svn: 152217
2012-03-07 09:32:32 +00:00
..
APFloat.h Replace the hashing functions on APInt and APFloat with overloads of the 2012-03-04 12:02:57 +00:00
APInt.h Replace the hashing functions on APInt and APFloat with overloads of the 2012-03-04 12:02:57 +00:00
APSInt.h PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and 2010-12-07 08:25:19 +00:00
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 Fix comment. 2010-02-17 19:26:45 +00:00
DenseMap.h DenseMap::find_as() and unit tests. 2012-01-30 06:55:43 +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 Initialize DenseSets lazily. 2011-07-21 23:03:59 +00:00
DepthFirstIterator.h Simplify this code. 2011-03-01 22:07:32 +00:00
edit_distance.h Add function for computing the edit distance of two arrays. 2012-02-15 22:13:07 +00:00
EquivalenceClasses.h Merge System into Support. 2010-11-29 18:16:10 +00:00
FoldingSet.h Remove redundant template partial specilization. 2011-05-16 12:42:22 +00:00
GraphTraits.h Change the Dominators recalculate() function to only rely on GraphTraits 2011-12-05 19:17:04 +00:00
Hashing.h Add support to the hashing infrastructure for automatically hashing both 2012-03-07 09:32:32 +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 Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
ImmutableIntervalMap.h Give ImmutableIntervalMap.h an include guard. 2011-04-24 15:46:46 +00:00
ImmutableList.h Add ImmutableList::contains(). Patch by Rui Paulo! 2011-07-06 21:59:48 +00:00
ImmutableMap.h Add getTreeFactory() to ImmutableSet to allow construction of ImmutableSetRef from an ImmutableSet object. 2011-09-23 19:10:26 +00:00
ImmutableSet.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +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 Fixed typo. 2011-12-22 00:12:51 +00:00
IntrusiveRefCntPtr.h RefCountedBaseVPTR needs the IntrusiveRefCntPtrInfo as friend, 2012-01-31 19:58:34 +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 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 Constify PackedVector::reference::operator T(). 2011-06-15 19:18:13 +00:00
PointerIntPair.h PointerUnion::getAddrOf() does not need to be template since we can only 2012-03-06 07:14:54 +00:00
PointerUnion.h PointerUnion::getAddrOf() does not need to be template since we can only 2012-03-06 07:14:54 +00:00
PostOrderIterator.h An interface for iterating over a loop's blocks in DFS order. 2011-08-03 23:27:28 +00:00
PriorityQueue.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
SCCIterator.h Avoid warnings about the parameter G being unused. 2011-10-20 08:56:41 +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 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: Provide a more efficient implementation of swap than the default triple-copy std::swap. 2012-03-06 20:40:02 +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 Template specialize SmallVector::push_back based on POD-ness of the type. Reduces clang binary by 188KB 2012-02-16 04:58:48 +00:00
SparseBitVector.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
SparseSet.h GCC warns about a comparison between signed and unsigned values. 2012-02-23 08:23:53 +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 move tier out of an anonymous namespace, it doesn't make sense 2011-07-21 06:21:31 +00:00
StringExtras.h Replace (Lower|Upper)caseString in favor of StringRef's newest methods. 2011-11-06 20:37:06 +00:00
StringMap.h Various public StringMap methods take or return "MapEntryTy", make it public. 2012-01-23 21:42:52 +00:00
StringRef.h Add generic support for hashing StringRef objects using the new hashing library. 2012-03-04 10:55:27 +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
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 Support was removed from LLVM's MIPS backend for the PSP variant of that 2012-02-22 11:32:54 +00:00
Twine.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
UniqueVector.h Removed trailing whitespace. 2009-01-09 19:25:42 +00:00
ValueMap.h Merge System into Support. 2010-11-29 18:16:10 +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