Steve Naroff
cbffdd23ee
Fix Windows build breakage...
...
llvm-svn: 91617
2009-12-17 20:39:34 +00:00
Eric Christopher
9219efa49e
Fix unused variable warning.
...
llvm-svn: 91609
2009-12-17 19:07:19 +00:00
Daniel Dunbar
9d1eac0cdd
Fix one more missing this-> to placate that picky clang++.
...
llvm-svn: 91536
2009-12-16 11:38:03 +00:00
Chris Lattner
4b21831c59
fix more missing this->'s to placate clang++
...
llvm-svn: 91531
2009-12-16 09:17:12 +00:00
Chris Lattner
ccad2e6bd4
Fix a missing this-> that clang++ notices.
...
llvm-svn: 91530
2009-12-16 09:09:54 +00:00
Chris Lattner
eee37b7ba5
now that libsystem no longer uses SmallVector, we can move
...
SmallVectorBase::grow_pod out of line, finally satisfying PR3758.
llvm-svn: 91529
2009-12-16 08:44:24 +00:00
Chris Lattner
7ea3176b0c
factor out the grow() method for all pod implementations into one
...
common function. It is still an inline method, which will be fixed next.
llvm-svn: 91526
2009-12-16 08:34:40 +00:00
Chris Lattner
bc295111a1
pull destroy_range and uninitialized_copy up to the
...
SmallVectorTemplateBase class, which allows us to statically
dispatch on isPodLike instead of dynamically.
llvm-svn: 91523
2009-12-16 08:09:23 +00:00
Chris Lattner
c9b5e915c2
sink most of the meat in smallvector back from SmallVectorTemplateCommon
...
down into SmallVectorImpl. This requires sprinking a ton of this->'s in,
but gives us a place to factor.
llvm-svn: 91522
2009-12-16 08:05:48 +00:00
Chris Lattner
19ee3f5216
substantial refactoring of SmallVector, now most code is in SmallVectorTemplateCommon,
...
and there is a new SmallVectorTemplateBase class in between it and SmallVectorImpl.
SmallVectorTemplateBase can be specialized based on isPodLike.
llvm-svn: 91518
2009-12-16 06:55:45 +00:00
Chris Lattner
b3db396df3
a few improvements:
...
1. Use std::equal instead of reinventing it.
2. don't run dtors in destroy_range if element is pod-like.
3. Use isPodLike to decide between memcpy/uninitialized_copy
instead of is_class. isPodLike is more generous in some cases.
llvm-svn: 91427
2009-12-15 08:34:01 +00:00
Chris Lattner
f4e5966cf1
hoist the begin/end/capacity members and a few trivial methods
...
up into the non-templated SmallVectorBase class.
llvm-svn: 91426
2009-12-15 08:29:22 +00:00
Chris Lattner
f1a0d32b5f
improve isPodLike to know that all non-class types are pod.
...
llvm-svn: 91425
2009-12-15 07:40:44 +00:00
Chris Lattner
587962c667
Remove isPod() from DenseMapInfo, splitting it out to its own
...
isPodLike type trait. This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.
llvm-svn: 91421
2009-12-15 07:26:43 +00:00
John McCall
9ebba8d98e
Names from dependent base classes are not found by unqualified lookup.
...
llvm-svn: 91407
2009-12-15 03:10:26 +00:00
Gabor Greif
8508c1f18e
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.
llvm-svn: 91123
2009-12-11 15:30:07 +00:00
Daniel Dunbar
a8dc0ca084
DeltaAlgorithm: Add a virtual destructor and home.
...
llvm-svn: 90957
2009-12-09 07:19:48 +00:00
Daniel Dunbar
b7c5aa749a
Remove unneeded ';' and a class/struct mismatch (noticed by clang).
...
llvm-svn: 90934
2009-12-09 02:58:09 +00:00
Chris Lattner
c9a91632e1
remove extraneous comma clang warns about
...
llvm-svn: 90707
2009-12-06 16:58:41 +00:00
Daniel Dunbar
63e2201f3e
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.
llvm-svn: 90447
2009-12-03 11:12:42 +00:00
Gabor Greif
234d7dbe09
typo
...
llvm-svn: 90236
2009-12-01 15:53:33 +00:00
Gabor Greif
e65e0b8591
demonstrate usage of Cases() mapping several strings to the same value; remove trailing spaces
...
llvm-svn: 90230
2009-12-01 12:53:56 +00:00
Tobias Grosser
246c05c351
Remove forgotten ShortNames in Trie and CompilationGraph
...
llvm-svn: 90135
2009-11-30 13:14:13 +00:00
Daniel Dunbar
bd57261f1f
Allow SmallString to implicitly convert to StringRef.
...
llvm-svn: 89529
2009-11-21 02:01:24 +00:00
Benjamin Kramer
3213126b9a
cstdlib is not automatically included with StringRef anymore.
...
llvm-svn: 89359
2009-11-19 16:08:04 +00:00
Benjamin Kramer
3e24786569
Remove the now obsolete algorithm include from StringRef.h.
...
llvm-svn: 89354
2009-11-19 15:48:14 +00:00
Torok Edwin
2d2fb3f6ec
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).
llvm-svn: 89352
2009-11-19 15:39:50 +00:00
Edward O'Callaghan
fb2393159b
Add PS3 Triple class, Credit to John Thompson.
...
llvm-svn: 89339
2009-11-19 11:59:00 +00:00
Daniel Dunbar
034c929118
Twine: Stores kinds as uchar instead of bitfield to be friendlier to the
...
optimizer.
llvm-svn: 89278
2009-11-19 00:04:43 +00:00
Viktor Kutuzov
1452b67541
Added getArchNameForAssembler method to the Triple class for which returns OS and Vendor independent target assembler arch.
...
llvm-svn: 89122
2009-11-17 18:48:27 +00:00
Nuno Lopes
44429689aa
add Case() with 5 args
...
llvm-svn: 89099
2009-11-17 15:35:39 +00:00
Duncan Sands
3ced5472c3
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.
llvm-svn: 89091
2009-11-17 10:54:25 +00:00
Eric Christopher
3877235021
Fix unused variables warnings.
...
llvm-svn: 88977
2009-11-16 22:34:32 +00:00
Chris Lattner
89c83b159c
add a version of array_pod_sort that takes a custom comparator function.
...
llvm-svn: 88861
2009-11-15 19:52:43 +00:00
Edward O'Callaghan
c672c34d7a
Add PSP OS Target to Triple, Credit to Bruno Cardoso Lopes.
...
llvm-svn: 88849
2009-11-15 10:18:17 +00:00
Dan Gohman
30f404fb4a
Use .data() instead of .c_str() when nul-termination is not needed.
...
llvm-svn: 88703
2009-11-13 21:55:31 +00:00
Rafael Espindola
11ceba8119
Switch to smallvector. Also fix issue with using unsigend for MaxSplit.
...
llvm-svn: 87068
2009-11-13 02:18:25 +00:00
Rafael Espindola
22f040b797
Add a new split method to StringRef that puts the substrings in a vector.
...
llvm-svn: 87058
2009-11-13 01:24:40 +00:00
Daniel Dunbar
880dfd38d8
StringRef(const char*) should not be used to turn null pointers into empty
...
strings.
llvm-svn: 87031
2009-11-12 21:26:11 +00:00
Benjamin Kramer
da70783da7
Add compare_lower and equals_lower methods to StringRef. Switch all users of
...
StringsEqualNoCase (from StringExtras.h) to it.
llvm-svn: 87020
2009-11-12 20:36:59 +00:00
Daniel Dunbar
da387a1c25
Add StringRef::split(StringRef), to complement StringRef::split(char).
...
llvm-svn: 86803
2009-11-11 05:19:11 +00:00
Daniel Dunbar
aa5d256b19
Add Triple::str() which returns the contents of the Triple as a string, as a more readable alternative to getTriple().
...
llvm-svn: 86773
2009-11-11 00:43:14 +00:00
Daniel Dunbar
16a5387db2
Add From arguments to StringRef search functions, and tweak doxyments.
...
Also, add unittests for find_first_of and find_first_not_of.
llvm-svn: 86770
2009-11-11 00:28:53 +00:00
Jeffrey Yasskin
23ac706aab
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!
llvm-svn: 86636
2009-11-10 01:02:17 +00:00
Daniel Dunbar
e458fe6d8e
Add StringSwitch::Cases overloads, for matching multiple strings to a single
...
value.
llvm-svn: 86618
2009-11-09 23:05:44 +00:00
Daniel Dunbar
4daaf9d3f4
Pass StringRef by value.
...
llvm-svn: 86251
2009-11-06 10:58:06 +00:00
Douglas Gregor
790089c6e6
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
...
llvm-svn: 86204
2009-11-06 00:12:53 +00:00
Douglas Gregor
cc2c05cb75
Make a few more LLVM headers parsable as standalone headers.
...
Fix some problems with the hidden copy constructors for
ImmutableMap/ImmutableSet found by Clang++.
llvm-svn: 86186
2009-11-05 23:01:30 +00:00
Zhongxing Xu
befbf73b93
add newline to make cl.exe happy.
...
llvm-svn: 85483
2009-10-29 05:07:14 +00:00
Douglas Gregor
354d1b85b2
A switch-on-string-literal construct that is a nice alternative to
...
cascading "ifs" of strcmps/memcmps.
llvm-svn: 85459
2009-10-29 00:34:30 +00:00
Evan Cheng
1c7dfce330
Remove getIEEEFloatParts and getIEEEDoubleParts. They are not needed.
...
llvm-svn: 85358
2009-10-28 01:08:17 +00:00
Evan Cheng
b6b5214744
Add new APFloat methods that return sign, exp, and mantissa of ieee float and double values.
...
llvm-svn: 85318
2009-10-27 21:35:42 +00:00
Mike Stump
a91d3ec5e9
Fix VS build, patch by Marius Wachtler.
...
llvm-svn: 85198
2009-10-27 02:17:51 +00:00
Chandler Carruth
766362c707
Move DataTypes.h to include/llvm/System, update all users. This breaks the last
...
direct inclusion edge from System to Support.
llvm-svn: 85086
2009-10-26 01:35:46 +00:00
Jeffrey Yasskin
bc5f122491
Fix stylistic and documentation problems in ValueMap found by Nick Lewycky and
...
Evan Cheng.
llvm-svn: 84967
2009-10-23 20:54:00 +00:00
Jeffrey Yasskin
e90afea0ba
Try r84890 again (adding ValueMap<>), now that I've tested the compile on
...
gcc-4.4.
llvm-svn: 84902
2009-10-22 22:11:22 +00:00
Eric Christopher
05ee62db65
size_t, not unsigned here to silence a warning.
...
llvm-svn: 84900
2009-10-22 22:06:50 +00:00
Benjamin Kramer
13aa437a5e
Random include cleanup.
...
llvm-svn: 84898
2009-10-22 21:49:41 +00:00
Jeffrey Yasskin
7555ed8cdc
Revert r84890, which broke the linux build.
...
llvm-svn: 84892
2009-10-22 20:23:43 +00:00
Jeffrey Yasskin
ad8692124f
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.
llvm-svn: 84890
2009-10-22 20:10:20 +00:00
Eric Christopher
41d8dc960b
More warnings patrol: Another unused argument and more implicit
...
conversions.
llvm-svn: 84382
2009-10-17 23:56:18 +00:00
Daniel Dunbar
b67b5bb0b1
Move UnescapeString to a static function for its sole client; its inefficient and broken.
...
llvm-svn: 84358
2009-10-17 20:43:42 +00:00
Daniel Dunbar
d537c7d394
Remove llvm::EscapeString, raw_ostream::write_escaped is much faster.
...
llvm-svn: 84357
2009-10-17 20:43:29 +00:00
Daniel Dunbar
0107265e33
Move StringMap's string has function into StringExtras.h
...
llvm-svn: 84344
2009-10-17 18:21:06 +00:00
Chris Lattner
5d2b384837
Add half precision floating point support (float16) to APFloat,
...
patch by Peter Johnson! (PR5195)
llvm-svn: 84239
2009-10-16 02:13:51 +00:00
Chris Lattner
87bcf3b242
add haiku support, patch by Paul Davey!
...
llvm-svn: 84238
2009-10-16 02:06:30 +00:00
Dan Gohman
ae76dc48d6
Delete bogus semicolons.
...
llvm-svn: 84132
2009-10-14 20:39:01 +00:00
Eric Christopher
a7407c0921
Remove a bunch of unused arguments from functions, silencing a
...
warning.
llvm-svn: 84130
2009-10-14 20:28:33 +00:00
Ted Kremenek
abbc32c042
Provide a mode for ImmutableMap/ImmutableSet to not automatically canonicalize the internal functional AVL trees. This should speedup clients that use ImmutableMap/ImmutableSet but don't require fast comparisons of maps.
...
llvm-svn: 84010
2009-10-13 19:08:10 +00:00
Chris Lattner
8fbbd25816
remove dead header.
...
llvm-svn: 83943
2009-10-13 05:33:26 +00:00
Dan Gohman
f9067da535
Add a ceilLogBase2 function to APInt.
...
llvm-svn: 83932
2009-10-13 01:49:02 +00:00
Torok Edwin
8203691f27
Add a comment explaining how DenseMap::insert works, because it is not
...
intuitive.
It does NOT update the value if the key is already in the map,
it also returns false if the key is already in the map, regardless
if the value matched.
llvm-svn: 83458
2009-10-07 09:23:56 +00:00
Dan Gohman
7cdf41cf01
Don't use identifiers that start with an underscore followed
...
by a capital letter, which invokes undefined behavior.
llvm-svn: 83206
2009-10-01 17:39:52 +00:00
Devang Patel
5cad2b8f0f
Create empty StringRef is incoming cstring is NULL.
...
llvm-svn: 83082
2009-09-29 18:39:56 +00:00
Daniel Dunbar
ac9a646035
Switch FoldingSet::AddString to StringRef based API.
...
- This also fixes a dereference of std::string::end, which makes MSVC unhappy and was causing all the static analyzer clang tests to fail.
llvm-svn: 82517
2009-09-22 03:34:53 +00:00
Chris Lattner
e520a0c8e7
write rfind in terms of npos as daniel requested
...
llvm-svn: 82414
2009-09-20 22:54:26 +00:00
Chris Lattner
72732da2f0
move a couple non-trivial methods out of line, add new
...
find_first_of/find_first_of methods.
llvm-svn: 82347
2009-09-20 01:22:16 +00:00
Chris Lattner
2cdc7b8e76
add size_t and a version of rfind that allows specification of where
...
to scan from.
llvm-svn: 82343
2009-09-20 00:38:28 +00:00
Chris Lattner
d2a0138c62
add some more overloads of StringRef::getAsInteger for
...
common and useful integer types.
llvm-svn: 82338
2009-09-19 23:58:48 +00:00
Chris Lattner
4606ccf232
add a simple c_str() method to SmallString.
...
llvm-svn: 82337
2009-09-19 23:57:31 +00:00
Chris Lattner
e6fa81a475
provide a "strtoull" operation that works on StringRef's.
...
llvm-svn: 82322
2009-09-19 19:47:14 +00:00
John McCall
f2c6ae3996
Fix a few places where PointerIntPair was using PointerLikeTypeTraits<PointerTy>
...
instead of the PtrTraits provided. Allows PointerIntPair to contain a
PointerUnion safely, as long as the bits add up.
llvm-svn: 82163
2009-09-17 20:35:18 +00:00
Chris Lattner
09084c45af
add a version of the APFloat constructor that initializes to 0.0
...
llvm-svn: 82110
2009-09-17 01:08:43 +00:00
Daniel Dunbar
60e1dee7fa
Add StringRef::{rfind, rsplit}
...
llvm-svn: 82087
2009-09-16 22:38:48 +00:00
Dan Gohman
4e86738fa7
Fix apostrophos.
...
llvm-svn: 81856
2009-09-15 15:08:33 +00:00
Chris Lattner
f02eb61c69
switch scciterator to use DenseMap instead of std::map
...
llvm-svn: 81834
2009-09-15 04:37:49 +00:00
Chris Lattner
f0c81c94c9
give densemap iterators real iterator traits.
...
llvm-svn: 81538
2009-09-11 18:15:46 +00:00
Daniel Dunbar
12045a9061
Add Triple::getArchTypeForDarwinArchName, which converts a "Darwin" architecture
...
name (e.g. "ppc") to the appropriate constant.
Also, StringRefize additional Triple constructor.
llvm-svn: 81274
2009-09-08 23:32:51 +00:00
Duncan Sands
8c36c0f009
Mark constants as unsigned, as pointed out by icc
...
warnings (#174 ). Patch by Erick Tryzelaar.
llvm-svn: 81111
2009-09-06 11:45:14 +00:00
Duncan Sands
750b1f5de2
Public and private corrections, warned about by icc ( #304 ).
...
Patch by Erick Tryzelaar.
llvm-svn: 81107
2009-09-06 08:55:57 +00:00
Benjamin Kramer
8e70ffa886
Delete unused #include.
...
llvm-svn: 81076
2009-09-05 08:50:14 +00:00
Benjamin Kramer
f5c5c341d1
Prune #includes.
...
llvm-svn: 81052
2009-09-04 22:45:23 +00:00
Ted Kremenek
e4f2f7f6b2
Make ImmutableMap/ImmutableSet quicker by only canonicalizing the tree after an
...
Add or Remove operation complete, and not while building the intermediate tree.
This trades a little bit more memory usage for less accesses to the FoldingSet. On a benchmark for the clang static analyzer, this shaves off another 13% of execution time when using field/array sensitivity.
llvm-svn: 80955
2009-09-03 22:07:30 +00:00
Ted Kremenek
6d0baa578a
Set the 'cached digest' flag after computing the digest for an
...
ImutAVLTree. This was accidentally left out, and essentially caused
digest caching to be ignored in ImmutableMap and ImmutableSet (this
bug was detected from shark traces that showed ComputeDigest was in
the hot path in the clang static analyzer).
This reduces the running time of the clang static analyzer on an
example benchmark by ~32% for both RegionStore (field-sensitivty) and
BasicStore (without field-sensitivity).
llvm-svn: 80877
2009-09-03 04:21:34 +00:00
Gabor Greif
eed8e1e9e5
restore semantics of operator* (removing a FIXME I had to introduce in r80224)
...
llvm-svn: 80622
2009-08-31 20:54:23 +00:00
Chris Lattner
0ba5632cf6
make DenseMap::clear() early exit if there is nothing to do.
...
llvm-svn: 80480
2009-08-30 05:55:04 +00:00
Gabor Greif
0d4f085232
eliminate all 80-col violations that I have introduced in my recent checkins (and some others more)
...
llvm-svn: 80304
2009-08-27 23:44:33 +00:00
Gabor Greif
6cd12a9f7f
re-apply r80197, now that iterator.h is not mentioned any more
...
llvm-svn: 80254
2009-08-27 17:07:35 +00:00
Gabor Greif
cc8681cea3
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 :-)
...
llvm-svn: 80224
2009-08-27 06:41:46 +00:00
Bill Wendling
5f74a3e3b9
--- Reverse-merging r80147 into '.':
...
A include/llvm/ADT/iterator.cmake
U autoconf/configure.ac
--- Reverse-merging r80161 into '.':
U cmake/config-ix.cmake
--- Reverse-merging r80171 into '.':
U Makefile
--- Reverse-merging r80173 into '.':
U configure
U include/llvm/Config/config.h.in
--- Reverse-merging r80180 into '.':
A include/llvm/ADT/iterator.h.in
Despite common miscomceptions, iterator.h is alive and well. It broke the build
bots for several hours. And yet no one bothered to look at them.
Gabor and Doug, please review your changes and make sure that they actually
build before resubmitting them.
llvm-svn: 80197
2009-08-27 03:29:26 +00:00