John McCall
eb751d8c2d
Names from dependent base classes are not found by unqualified lookup.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91407 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-15 03:10:26 +00:00
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
Daniel Dunbar
022840e960
DeltaAlgorithm: Add a virtual destructor and home.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90957 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-09 07:19:48 +00:00
Daniel Dunbar
e854273892
Remove unneeded ';' and a class/struct mismatch (noticed by clang).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90934 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-09 02:58:09 +00:00
Chris Lattner
9000242cca
remove extraneous comma clang warns about
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90707 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-06 16:58:41 +00:00
Daniel Dunbar
a6d5e40e25
Add an implementation of the delta debugging algorithm.
...
- This is a pretty slow / memory intensive implementation, and I will likely
change it to an iterative model, but it works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90447 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03 11:12:42 +00:00
Gabor Greif
074fe8324d
typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90236 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01 15:53:33 +00:00
Gabor Greif
6c2a7a04da
demonstrate usage of Cases() mapping several strings to the same value; remove trailing spaces
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90230 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01 12:53:56 +00:00
Tobias Grosser
b5eedf2c1c
Remove forgotten ShortNames in Trie and CompilationGraph
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90135 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30 13:14:13 +00:00
Daniel Dunbar
983c7fe847
Allow SmallString to implicitly convert to StringRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89529 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21 02:01:24 +00:00
Benjamin Kramer
90c583fff0
cstdlib is not automatically included with StringRef anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89359 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19 16:08:04 +00:00
Benjamin Kramer
1acdcd5b0d
Remove the now obsolete algorithm include from StringRef.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89354 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19 15:48:14 +00:00
Torok Edwin
2fe05d80d3
Workaround PR5482, because all the gcc versions that I had were miscompiling StringRef:
...
4.2.4, 4.3.4, 4.4.2.
The workaround is to use a local min/max implementation that takes an integer
param, and not a reference to integer param (like std::min does).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89352 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19 15:39:50 +00:00
Edward O'Callaghan
cc9fa81fe1
Add PS3 Triple class, Credit to John Thompson.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89339 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19 11:59:00 +00:00
Daniel Dunbar
b80077aae9
Twine: Stores kinds as uchar instead of bitfield to be friendlier to the
...
optimizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89278 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19 00:04:43 +00:00
Viktor Kutuzov
51cdac02c4
Added getArchNameForAssembler method to the Triple class for which returns OS and Vendor independent target assembler arch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89122 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17 18:48:27 +00:00
Nuno Lopes
2cd8abbf86
add Case() with 5 args
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89099 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17 15:35:39 +00:00
Duncan Sands
4a20c7a0a9
1. Allow SCCIterator to work with GraphT types that are constant.
...
2. Allow SCCIterator to work with inverse graphs.
3. Fix an incorrect comment in GraphTraits.h (the type in the comment
was given as GraphType* when it is actually const GraphType &).
Patch by Patrick Alexander Simmons.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89091 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17 10:54:25 +00:00
Eric Christopher
4c269e2feb
Fix unused variables warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88977 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16 22:34:32 +00:00
Chris Lattner
9806f833a6
add a version of array_pod_sort that takes a custom comparator function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88861 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15 19:52:43 +00:00
Edward O'Callaghan
e0fb75d586
Add PSP OS Target to Triple, Credit to Bruno Cardoso Lopes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88849 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15 10:18:17 +00:00
Dan Gohman
24f8e29b4e
Use .data() instead of .c_str() when nul-termination is not needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88703 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13 21:55:31 +00:00
Rafael Espindola
c78c0c99a0
Switch to smallvector. Also fix issue with using unsigend for MaxSplit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87068 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13 02:18:25 +00:00
Rafael Espindola
5ccac24726
Add a new split method to StringRef that puts the substrings in a vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87058 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13 01:24:40 +00:00
Daniel Dunbar
89fccca4b0
StringRef(const char*) should not be used to turn null pointers into empty
...
strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12 21:26:11 +00:00
Benjamin Kramer
05872ea804
Add compare_lower and equals_lower methods to StringRef. Switch all users of
...
StringsEqualNoCase (from StringExtras.h) to it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87020 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-12 20:36:59 +00:00
Daniel Dunbar
a8333d3d10
Add StringRef::split(StringRef), to complement StringRef::split(char).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86803 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11 05:19:11 +00:00
Daniel Dunbar
3691393b86
Add Triple::str() which returns the contents of the Triple as a string, as a more readable alternative to getTriple().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11 00:43:14 +00:00
Daniel Dunbar
64066bd8b5
Add From arguments to StringRef search functions, and tweak doxyments.
...
Also, add unittests for find_first_of and find_first_not_of.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86770 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11 00:28:53 +00:00
Jeffrey Yasskin
81cf432569
Fix DenseMap iterator constness.
...
This patch forbids implicit conversion of DenseMap::const_iterator to
DenseMap::iterator which was possible because DenseMapIterator inherited
(publicly) from DenseMapConstIterator. Conversion the other way around is now
allowed as one may expect.
The template DenseMapConstIterator is removed and the template parameter
IsConst which specifies whether the iterator is constant is added to
DenseMapIterator.
Actually IsConst parameter is not necessary since the constness can be
determined from KeyT but this is not relevant to the fix and can be addressed
later.
Patch by Victor Zverovich!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86636 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-10 01:02:17 +00:00
Daniel Dunbar
38424c9b5d
Add StringSwitch::Cases overloads, for matching multiple strings to a single
...
value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86618 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09 23:05:44 +00:00
Daniel Dunbar
2928c83b01
Pass StringRef by value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86251 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06 10:58:06 +00:00
Douglas Gregor
6a66b38846
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
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86204 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06 00:12:53 +00:00
Douglas Gregor
0c8ae782cb
Make a few more LLVM headers parsable as standalone headers.
...
Fix some problems with the hidden copy constructors for
ImmutableMap/ImmutableSet found by Clang++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86186 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05 23:01:30 +00:00
Zhongxing Xu
7a8b33a9a4
add newline to make cl.exe happy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85483 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-29 05:07:14 +00:00
Douglas Gregor
f25cf3d56f
A switch-on-string-literal construct that is a nice alternative to
...
cascading "ifs" of strcmps/memcmps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85459 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-29 00:34:30 +00:00
Evan Cheng
c5a75523ef
Remove getIEEEFloatParts and getIEEEDoubleParts. They are not needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-28 01:08:17 +00:00
Evan Cheng
99ebfa5f6c
Add new APFloat methods that return sign, exp, and mantissa of ieee float and double values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85318 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-27 21:35:42 +00:00
Mike Stump
fe134fe9e5
Fix VS build, patch by Marius Wachtler.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85198 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-27 02:17:51 +00:00
Chandler Carruth
8b67f774e9
Move DataTypes.h to include/llvm/System, update all users. This breaks the last
...
direct inclusion edge from System to Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-26 01:35:46 +00:00
Jeffrey Yasskin
4ab74cdc12
Fix stylistic and documentation problems in ValueMap found by Nick Lewycky and
...
Evan Cheng.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84967 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-23 20:54:00 +00:00
Jeffrey Yasskin
71a5c22c2b
Try r84890 again (adding ValueMap<>), now that I've tested the compile on
...
gcc-4.4.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84902 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-22 22:11:22 +00:00
Eric Christopher
abc5ac7289
size_t, not unsigned here to silence a warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-22 22:06:50 +00:00
Benjamin Kramer
a0b0562a35
Random include cleanup.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84898 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-22 21:49:41 +00:00
Jeffrey Yasskin
a84c9db467
Revert r84890, which broke the linux build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84892 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-22 20:23:43 +00:00
Jeffrey Yasskin
e0a234029b
Add a ValueMap<ValueOrSubclass*, T> type. ValueMap<Value*, T> is safe to use
...
even when keys get RAUWed and deleted during its lifetime. By default the keys
act like WeakVHs, but users can pass a third template parameter to configure
how updates work and whether to do anything beyond updating the map on each
action.
It's also possible to automatically acquire a lock around ValueMap updates
triggered by RAUWs and deletes, to support the ExecutionEngine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-22 20:10:20 +00:00
Eric Christopher
3a8ff4c8b6
More warnings patrol: Another unused argument and more implicit
...
conversions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84382 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-17 23:56:18 +00:00
Daniel Dunbar
9bd34602fb
Move UnescapeString to a static function for its sole client; its inefficient and broken.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-17 20:43:42 +00:00
Daniel Dunbar
ca107c5c18
Remove llvm::EscapeString, raw_ostream::write_escaped is much faster.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84357 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-17 20:43:29 +00:00
Daniel Dunbar
4dee7fd2c2
Move StringMap's string has function into StringExtras.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84344 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-17 18:21:06 +00:00