llvm-6502/include/llvm/ADT
Gabor Greif d01518630a Simplify this class by removing the result cache.
This change removes the DefaultConstructible
and CopyAssignable constraints on the template
parameter T (the first one).

The second template parameter (R) is defaulted to be
identical to the first and controls the result type.
By specifying it to be (const T&) additionally the
CopyConstructible constraint on T can be removed.

This allows to use StringSwitch e.g. for llvm::Constant
instances.

Regarding the other review feedback regarding performance
because of taking pointers, this class should be completely
optimizable like before, since all methods are inline and
the pointer dereferencing and result value caching should be
possible behind the scenes by the "as-if" rule.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91123 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-11 15:30:07 +00:00
..
APFloat.h Remove getIEEEFloatParts and getIEEEDoubleParts. They are not needed. 2009-10-28 01:08:17 +00:00
APInt.h Add a ceilLogBase2 function to APInt. 2009-10-13 01:49:02 +00:00
APSInt.h Fix bug where APSInt::operator-- incremented instead of decremented. 2009-02-16 22:39:08 +00:00
BitVector.h Use CHAR_BIT instead of hard-coding 8 in several places where it 2009-04-01 18:45:54 +00:00
DeltaAlgorithm.h DeltaAlgorithm: Add a virtual destructor and home. 2009-12-09 07:19:48 +00:00
DenseMap.h Fix DenseMap iterator constness. 2009-11-10 01:02:17 +00:00
DenseMapInfo.h More warnings patrol: Another unused argument and more implicit 2009-10-17 23:56:18 +00:00
DenseSet.h Remove unneeded ';' and a class/struct mismatch (noticed by clang). 2009-12-09 02:58:09 +00:00
DepthFirstIterator.h Clean up the minor mess I caused with removing iterator.h. I shall take care of 80-col violations and the FIXME later. (Thanks goodness that I live in another continent, so the monkeypox did not strike me :-) 2009-08-27 06:41:46 +00:00
EquivalenceClasses.h Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
FoldingSet.h Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +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 Public and private corrections, warned about by icc (#304). 2009-09-06 08:55:57 +00:00
ilist.h Public and private corrections, warned about by icc (#304). 2009-09-06 08:55:57 +00:00
ImmutableList.h Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
ImmutableMap.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
ImmutableSet.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
IndexedMap.h Public and private corrections, warned about by icc (#304). 2009-09-06 08:55:57 +00:00
IntrusiveRefCntPtr.h Fixed lint errors: 2009-02-20 22:20:18 +00:00
OwningPtr.h Fixed lint errors: 2009-02-20 22:20:18 +00:00
PointerIntPair.h Fix a few places where PointerIntPair was using PointerLikeTypeTraits<PointerTy> 2009-09-17 20:35:18 +00:00
PointerUnion.h Add a bunch of missing "template" keywords to disambiguate dependent template names. GCC eats this ill-formed code, Clang does not. I already filed PR5404 to improve recovery in this case 2009-11-06 00:12:53 +00:00
PostOrderIterator.h eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
PriorityQueue.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
SCCIterator.h 1. Allow SCCIterator to work with GraphT types that are constant. 2009-11-17 10:54:25 +00:00
ScopedHashTable.h Removed trailing whitespace. 2009-01-09 19:25:42 +00:00
SetOperations.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
SetVector.h Fixed lint errors: 2009-02-20 22:20:18 +00:00
SmallPtrSet.h Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
SmallSet.h Fix apostrophos. 2009-09-15 15:08:33 +00:00
SmallString.h Allow SmallString to implicitly convert to StringRef. 2009-11-21 02:01:24 +00:00
SmallVector.h Clean up the minor mess I caused with removing iterator.h. I shall take care of 80-col violations and the FIXME later. (Thanks goodness that I live in another continent, so the monkeypox did not strike me :-) 2009-08-27 06:41:46 +00:00
SparseBitVector.h Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
Statistic.h Fix the build on Cygwin. Patch by Aaron Gray. 2009-06-30 05:33:46 +00:00
STLExtras.h cstdlib is not automatically included with StringRef anymore. 2009-11-19 16:08:04 +00:00
StringExtras.h Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
StringMap.h Pass StringRef by value. 2009-11-06 10:58:06 +00:00
StringRef.h Remove the now obsolete algorithm include from StringRef.h. 2009-11-19 15:48:14 +00:00
StringSet.h Remove extra blank line and space. 2009-01-08 06:11:51 +00:00
StringSwitch.h Simplify this class by removing the result cache. 2009-12-11 15:30:07 +00:00
Trie.h Remove forgotten ShortNames in Trie and CompilationGraph 2009-11-30 13:14:13 +00:00
Triple.h Add PS3 Triple class, Credit to John Thompson. 2009-11-19 11:59:00 +00:00
Twine.h Twine: Stores kinds as uchar instead of bitfield to be friendlier to the 2009-11-19 00:04:43 +00:00
UniqueVector.h Removed trailing whitespace. 2009-01-09 19:25:42 +00:00
ValueMap.h Fix VS build, patch by Marius Wachtler. 2009-10-27 02:17:51 +00:00
VectorExtras.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00