538 Commits

Author SHA1 Message Date
Dan Gohman
60e964b34c Add some basic Pool-allocation infrastructure. This adds a Recycler class,
for handling bookkeeping for deleted objects, as well as the alist class
template, for keeping lists of objects allocated from Recyclers, and some
related utilities.

llvm-svn: 53210
2008-07-07 22:58:06 +00:00
Dan Gohman
1834981eb0 Make ilist noncopyable too.
llvm-svn: 53190
2008-07-07 18:43:32 +00:00
Dan Gohman
fca9922b1b Don't use std::advance just to increment or decrement by one.
llvm-svn: 53189
2008-07-07 18:39:33 +00:00
Dan Gohman
3755664b6d Remove unnecessary static_casts.
llvm-svn: 53181
2008-07-07 18:08:20 +00:00
Dan Gohman
9112a5463e Remove an unnecessary reinterpret_cast.
llvm-svn: 53180
2008-07-07 18:07:36 +00:00
Dan Gohman
955fdc7a4c Add explicit keywords.
llvm-svn: 53179
2008-07-07 18:00:37 +00:00
Dan Gohman
c97817aac3 Make DenseMap's insert return a pair, to more closely resemble std::map.
llvm-svn: 53177
2008-07-07 17:46:23 +00:00
Ted Kremenek
1d321b8875 Removed ImmutableMap::SlimFind and replaced it with ImmutableMap::lookup. The new method does the same thing, except that it returns a pointer to the mapped data type, and not to an internal tree node.
llvm-svn: 53171
2008-07-07 16:20:55 +00:00
Dan Gohman
9c78662057 Use operator new instead of new char[].
llvm-svn: 53067
2008-07-03 00:59:36 +00:00
Owen Anderson
dd29406f31 Have DenseSet::insert return a bool indicating whether the insertion succeeded or not.
llvm-svn: 53033
2008-07-02 17:29:59 +00:00
Chris Lattner
441571cc05 optimize StringMap::clear
llvm-svn: 53009
2008-07-02 05:30:45 +00:00
Chris Lattner
06545d1c4a Add a new (simple) StringMap::clear method, patch by Pratik
Solanki!

llvm-svn: 53008
2008-07-02 05:26:32 +00:00
Ted Kremenek
41502657f7 Implemented operator!= for the ImmutableList iterator.
llvm-svn: 52998
2008-07-02 00:06:55 +00:00
Owen Anderson
1530481dd3 Add a version of AddString that takes a const char* so we can avoid extraneous
conversions to std::string.

llvm-svn: 52995
2008-07-01 23:49:59 +00:00
Ted Kremenek
0b662363f9 Added partial specialization of FoldingSetTrait for pointers.
llvm-svn: 52989
2008-07-01 22:30:13 +00:00
Seo Sanghyeon
0b4c1205fb Compilation fix
llvm-svn: 52950
2008-07-01 05:27:28 +00:00
Dan Gohman
081848d881 Make SmallVector's grow use memcpy in common cases
instead of std::uninitialized_copy, which uses memmove.

llvm-svn: 52928
2008-06-30 21:45:13 +00:00
Dan Gohman
06ca992a01 Use plain operator new instead of new char[].
llvm-svn: 52927
2008-06-30 21:33:02 +00:00
Ted Kremenek
834afcfdcd Added some comments and some cleanups.
llvm-svn: 52922
2008-06-30 20:41:22 +00:00
Ted Kremenek
70f042f0a1 Added ImmutableList, a companion ADT to ImmutableSet and ImmutableMap that is used to represent a purely functional list.
llvm-svn: 52911
2008-06-30 18:07:38 +00:00
Chris Lattner
9adb1b56de add convenience 'constructors'
llvm-svn: 52908
2008-06-30 18:02:44 +00:00
Bill Wendling
36ebc296c1 Remove warnings about shadowed and unused variables.
llvm-svn: 52791
2008-06-26 18:11:45 +00:00
Dan Gohman
d1ec941698 Pass std::string by reference. Thanks Chris!
llvm-svn: 52678
2008-06-24 16:40:22 +00:00
Dan Gohman
490250e7f2 Add a clear() method to PriorityQueue.
llvm-svn: 52656
2008-06-23 23:47:46 +00:00
Dan Gohman
512bf41c02 Simplify erase_one slightly. It's not necessary to preserve
the value of the element to be erased while the heap is
being updated.

llvm-svn: 52646
2008-06-23 21:46:21 +00:00
Dan Gohman
54b67be86a Add methods to StringMap to erase entries by key.
llvm-svn: 52640
2008-06-23 21:07:03 +00:00
Wojciech Matyjewicz
1de28ac425 First step to fix PR2088. Implement routine to compute the
multiplicative inverse of a given number. Modify udivrem to allow input and 
output pairs of arguments to overlap. Patch is based on the work by Chandler
Carruth.

llvm-svn: 52638
2008-06-23 19:39:50 +00:00
Dan Gohman
4099d0bf27 Add a priority queue class, which is a wrapper around std::priority_queue
and provides fairly efficient removal of arbitrary elements. Switch
ScheduleDAGRRList from std::set to this new priority queue.

llvm-svn: 52582
2008-06-21 18:35:25 +00:00
Owen Anderson
609a53ac86 Fix use of placement new to actually use an address.
llvm-svn: 52423
2008-06-17 18:07:43 +00:00
Duncan Sands
a487df7710 Remove some DAG combiner assumptions about sizes
of integer types.  Fix the isMask APInt method to
actually work (hopefully) rather than crashing
because it adds apints of different bitwidths.
It looks like isShiftedMask is also broken, but
I'm leaving that one to the APInt people (it is
not used anywhere).

llvm-svn: 52142
2008-06-09 11:32:28 +00:00
Chris Lattner
ed8780055e Add a simple, but efficient, generic scoped hash table
llvm-svn: 52112
2008-06-09 00:42:10 +00:00
Chris Lattner
0e6bb31def add a predicate.
llvm-svn: 51842
2008-06-01 18:09:04 +00:00
Dan Gohman
b67e96f3aa Add an operator< for SmallVector.
llvm-svn: 51791
2008-05-30 22:37:47 +00:00
Dan Gohman
edc136d18f Fix an error in the comment for APInt::getMinSignedBits.
llvm-svn: 51720
2008-05-30 00:46:49 +00:00
Anton Korobeynikov
80d70cd681 Remove guard, so *each* inclusion will result in a warning
llvm-svn: 51708
2008-05-29 21:57:11 +00:00
Dan Gohman
3ea2dceca0 Prune and tidy #includes.
llvm-svn: 51697
2008-05-29 19:52:31 +00:00
Anton Korobeynikov
f46e96a222 Add file with warning for backward comptibility. Should be removed after 2.4
llvm-svn: 51693
2008-05-29 18:18:15 +00:00
Anton Korobeynikov
c128302249 Update guards
llvm-svn: 51692
2008-05-29 18:17:53 +00:00
Anton Korobeynikov
f77142326f For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h"
llvm-svn: 51687
2008-05-29 17:41:17 +00:00
Matthijs Kooijman
2a23a4e495 Use an explicit llvm:: prefix in the STATISTIC macro, so STATISTIC can still be
used when "using namespace llvm" is not in effect.

llvm-svn: 51592
2008-05-27 12:41:24 +00:00
Bill Wendling
1866fa680f Remove warnings about unused parameters and shadowed variables.
llvm-svn: 51266
2008-05-19 20:15:12 +00:00
Anton Korobeynikov
5961d53986 Add thin layer over StringMap to form StringSet. By Mikhail Glushenkov.
llvm-svn: 51048
2008-05-13 15:03:16 +00:00
Ted Kremenek
1534cce257 Make the interface of CStrInCStrNoCase be the same as strcasestr.
llvm-svn: 50828
2008-05-07 20:04:18 +00:00
Ted Kremenek
b82fe559d6 Fix some serious logical errors in CStrInCStrNoCase pointed out by Bill.
llvm-svn: 50826
2008-05-07 19:22:36 +00:00
Ted Kremenek
cbaf12a084 Guard for empty strings in CStrInCStrNoCase.
llvm-svn: 50823
2008-05-07 18:49:31 +00:00
Ted Kremenek
535ed35152 Added CStrInCStrNoCase, a portable implementation of strcasestr.
llvm-svn: 50821
2008-05-07 18:35:46 +00:00
Nick Lewycky
adfc627b77 Typo.
llvm-svn: 50805
2008-05-07 06:39:04 +00:00
Evan Cheng
d9353009b7 Fix more -Wshorten-64-to-32 warnings.
llvm-svn: 50659
2008-05-05 18:30:58 +00:00
Ted Kremenek
aff3b5126a Implement operator-> for ImmutableMap iterators.
llvm-svn: 50603
2008-05-03 01:05:46 +00:00
Evan Cheng
c2d34f03bf Suppress -Wshorten-64-to-32 warnings for 64-bit hosts.
llvm-svn: 50590
2008-05-02 21:15:08 +00:00